package br.gov.mi.corporativo.dominio.rhmi;

// Generated 17/11/2014 09:46:12 by Hibernate Tools 4.0.0

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Immutable;

/**
 * FuncionarioDocumento generated by hbm2java
 */
@Entity @Immutable
@Table(schema = "DES_RHMI", name = "FUNCIONARIO_DOCUMENTO")
public final class FuncionarioDocumento implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1522810167998135446L;
	
	@Id
	@Column(name = "ID_FUNCIONARIO_DOCUMENTO", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idFuncionarioDocumento;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_FUNCIONARIO", nullable = false)
	private Funcionario funcionario;
	
	@Column(name = "ID_TIPO_DOCUMENTO", nullable = false, precision = 22, scale = 0)
	private Long idTipoDocumento;
	
	@Column(name = "ID_UF", precision = 2, scale = 0)
	private Long idUf;
	
	@Column(name = "ID_MUNICIPIO", precision = 7, scale = 0)
	private Long idMunicipio;
	
	@Column(name = "NR_DOCUMENTO", nullable = false, length = 30)
	private String nrDocumento;
	
	@Column(name = "NR_SECAO", precision = 5, scale = 0)
	private Integer nrSecao;
	
	@Column(name = "NR_ZONA", precision = 5, scale = 0)
	private Integer nrZona;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_EMISSAO", length = 7)
	private Date dtEmissao;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_VALIDADE", length = 7)
	private Date dtValidade;
	
	@Column(name = "ST_REGISTRO", nullable = false, length = 1)
	private String stRegistro;

	public FuncionarioDocumento() {
	}

	public FuncionarioDocumento(Long idFuncionarioDocumento,
			Funcionario funcionario, Long idTipoDocumento,
			String nrDocumento, String stRegistro) {
		this.idFuncionarioDocumento = idFuncionarioDocumento;
		this.funcionario = funcionario;
		this.idTipoDocumento = idTipoDocumento;
		this.nrDocumento = nrDocumento;
		this.stRegistro = stRegistro;
	}

	public FuncionarioDocumento(Long idFuncionarioDocumento,
			Funcionario funcionario, Long idTipoDocumento, Long idUf,
			Long idMunicipio, String nrDocumento, Integer nrSecao,
			Integer nrZona, Date dtEmissao, Date dtValidade, String stRegistro) {
		this.idFuncionarioDocumento = idFuncionarioDocumento;
		this.funcionario = funcionario;
		this.idTipoDocumento = idTipoDocumento;
		this.idUf = idUf;
		this.idMunicipio = idMunicipio;
		this.nrDocumento = nrDocumento;
		this.nrSecao = nrSecao;
		this.nrZona = nrZona;
		this.dtEmissao = dtEmissao;
		this.dtValidade = dtValidade;
		this.stRegistro = stRegistro;
	}

	
	public Long getIdFuncionarioDocumento() {
		return this.idFuncionarioDocumento;
	}

	
	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	
	public Long getIdTipoDocumento() {
		return this.idTipoDocumento;
	}

	
	public Long getIdUf() {
		return this.idUf;
	}

	
	public Long getIdMunicipio() {
		return this.idMunicipio;
	}

	
	public String getNrDocumento() {
		return this.nrDocumento;
	}

	
	public Integer getNrSecao() {
		return this.nrSecao;
	}

	
	public Integer getNrZona() {
		return this.nrZona;
	}

	
	public Date getDtEmissao() {
		return this.dtEmissao;
	}

	
	public Date getDtValidade() {
		return this.dtValidade;
	}

	
	public String getStRegistro() {
		return this.stRegistro;
	}

}
